/**
 * @description 添加千分位分隔符
 * @param {Number} value 输入值
 * @returns {String} 添加千分位分隔符后的字符串
 */
interface AddCommas {
	(value: number | string): string;
}

const addCommas: AddCommas = function (value) {
	// 验证输入是数字或数字字符串
	if (isNaN(value as any) || !Number.isFinite(Number(value))) {
		throw new Error('Invalid input. Please provide a valid number or number string.');
	}

	value = String(value);

	// 如果长度小于等于3，直接返回
	if (value.length <= 3) return value;

	// 从右到左遍历字符串，每三个字符添加逗号
	let result = '';
	for (let i = value.length - 1; i >= 0; i -= 3) {
		result = value.slice(i, i + 3) + result;
		if (i !== 0 && (value.length - i) % 3 === 0) {
			result = ',' + result;
		}
	}

	return result;
};
export default addCommas;
